package it.unipg.bipod.dataModel;

/**
 * Insegnamento mappa un'entita' "insegnamento" di BiPoD.<br>
 * Le sue proprieta' rispecchiano 1-1 i campi dell'entia' corrispondente.
 * 
 * @author Lorenzo Porzi
 * 
 */
public class Insegnamento {
	private int idInsegnamento;
	private String nome;
	private String ssd;
	private int cfu;
	private int ore;
	private String compenso;
	private int corso;
	private int bando;
	
	/**
	 * Costruisce un nuovo insegnamento "vuoto".
	 */
	public Insegnamento() {
		this(0, "", "", 0, 0, "", 0, 0);
	}
	
	/**
	 * Costruisce un insegnamento con le proprieta' specificate.
	 * 
	 * @param idInsegnamento
	 * @param nome
	 * @param ssd
	 * @param cfu
	 * @param corso
	 * @param bando
	 */
	public Insegnamento(int idInsegnamento, String nome, String ssd, int cfu, int ore, String compenso, int corso, int bando) {
		setIdInsegnamento(idInsegnamento);
		setNome(nome);
		setSsd(ssd);
		setCfu(cfu);
		setOre(ore);
		setCompenso(compenso);
		setCorso(corso);
		setBando(bando);
	}
	
	/* -----------------
	 * Setters e Getters
	 * ----------------- */
	
	public void setIdInsegnamento(int idInsegnamento) {
		this.idInsegnamento = idInsegnamento;
	}

	public int getIdInsegnamento() {
		return idInsegnamento;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getNome() {
		return nome;
	}

	public void setSsd(String ssd) {
		this.ssd = ssd;
	}

	public String getSsd() {
		return ssd;
	}

	public void setCfu(int cfu) {
		this.cfu = cfu;
	}

	public int getCfu() {
		return cfu;
	}

	public void setCorso(int corso) {
		this.corso = corso;
	}

	public int getCorso() {
		return corso;
	}

	public void setBando(int bando) {
		this.bando = bando;
	}

	public int getBando() {
		return bando;
	}
	
	public void setOre(int ore) {
		this.ore = ore;
	}

	public int getOre() {
		return ore;
	}
	
	public void setCompenso(String compenso) {
		this.compenso = compenso;
	}
	
	public String getCompenso() {
		return compenso;
	}
	
	/* ------------
	 * Altri metodi
	 * ------------ */

	@Override
	public String toString() {
		return "Insegnamento [bando=" + bando + ", cfu=" + cfu + ", corso="
				+ corso + ", idInsegnamento=" + idInsegnamento + ", nome="
				+ nome + ", ssd=" + ssd + "]";
	}
	
	@Override
	public boolean equals(Object insegnamento) {
		if (insegnamento instanceof Insegnamento)
			return getIdInsegnamento() == ((Insegnamento)insegnamento).getIdInsegnamento();
		
		return false;
	}
}